package com.zjl.redis.第02章_十大数据类型;

import com.zjl.redis.第01章_redis安装.RedisUtil;
import redis.clients.jedis.Jedis;

/**
 * redis位图(bitmap)
 * Bit arrays (or simply bitmaps,我们可以称之为位图)
 *
 */
public class B8_Bitmaps {
    /**
     * Bitmaps  //适合大量的用户
     * Redis提供了Bitmaps这个“数据类型”可以实现对位的操作:
     * (1) Bitmaps 本身不是一种数据类型，实际上它就是字符串( key-value )
     *     但是它可以对字符串的位进行操作。
     * (2)Bitmaps单独提供了一套命令，所以在Redis中使用Bitmaps和使用字
     *   符串的方法不太相同。可以把 Bitmaps 想象成一个以位为单位的数组,
     *   数组的每个单元只能存储0和1，数组的下标在Bitmaps中叫做偏移量。
     *
     * //二进制 最大偏移量为  2^32-1   4294967296-1
     *   setbit key 偏移量 1//将偏移量这"位"的0改为1   偏移量从 0开始
     *   getbit key 偏移量//返回0/1   0表示没执行过    1：执行过
     *   strlen key//获得key的value长度 等于获取Bitmaps的字节数
     *   bitcount key//返回设置为1的bit数
     *   bitcount key 0 -1//返回从第0个(每八位为1个bit)（0表示第一个）到-1（-1表示最后一个   -2表示倒数第二个）设置为1的bit数
     *   bitop and/or/not/xor destkey key1 key2
     *      //将key1和key2进行 and（交集）    or（并集）   not（非）    xor（异或）  保存到新的destkey键中
     *
     * //适合谁访问过  某个网站  ip是几   就把第几位改成1
     */
    public static void main(String[] args) {
        System.out.println((1L<<32));//4294967296
        System.out.println(Integer.MAX_VALUE);//2147483647   有正负
        Jedis jedis = RedisUtil.getRedis();
        System.currentTimeMillis();//获取当前时间戳
        System.out.println(jedis.ping());//查看是否连接成功  PONG:成功
        jedis.close();
    }
}
